package com.lzw.DailyAudit.mapper;


import com.baomidou.dynamic.datasource.annotation.DS;
import com.hooya.fa.eu.biz.DailyAudit.entity.StkOrigDataCollect;
import com.hooya.fa.eu.biz.DailyAudit.entity.dto.InvoiceDataDTO;
import com.hooya.fa.eu.biz.DailyAudit.entity.dto.ProfitCheckDTO;
import com.hooya.fa.eu.biz.DailyAudit.entity.dto.StockListDTO;
import com.hooya.fa.eu.biz.DailyAudit.entity.dto.StockQtyDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface DailyStkOrigDataCollectMapper {

    /**
     * 批量插入数据
     *
     * @param list 数据列表
     * @return 影响的行数
     */
    @DS("fa_eu_daily")
	int insertBatch(@Param("list") List<StkOrigDataCollect> list);

    /**
     * 根据发票ID更新发票号
     *
     * @param startDate 开始日期
     * @param endDate   结束日期
     * @return 影响的行数
     */
   @DS("fa_eu_daily")
    int updateInvoiceNoByInvoiceId(@Param("currentDate") String currentDate);

    List<StockQtyDTO> getQtyChanges(@Param("begin") String begin, @Param("nextMonthBegin") String nextMonthBegin);

	@DS("fa_eu_daily")
    List<String> selectSkuList(@Param("currentDate") String currentDate);

	@DS("fa_eu_daily")
    List<InvoiceDataDTO> getB2bGenerateData(@Param("currentDate") String currentDate);

	@DS("fa_eu_daily")
    List<InvoiceDataDTO> getB2bDetailData(@Param("currentDate") String currentDate);

	@DS("fa_eu_daily")
    List<InvoiceDataDTO> getTranGenerateData(@Param("currentDate") String currentDate);

	@DS("fa_eu_daily")
    List<InvoiceDataDTO> getTranDetailData(@Param("currentDate") String currentDate);

    // StockList相关方法

    /**
     * 获取B2B数据
     */
    @DS("fa_eu_daily")
	List<StockListDTO> getB2bData(@Param("currentDate") String currentDate);

    /**
     * 获取B2C数据
     */
	@DS("fa_eu_daily")
	List<StockListDTO> getB2cData(@Param("currentDate") String currentDate);

    /**
     * 获取报损数据
     */
	@DS("fa_eu_daily")
	List<StockListDTO> getBsData(@Param("currentDate") String currentDate);

    /**
     * 获取采购数据
     */
	@DS("fa_eu_daily")
	List<StockListDTO> getCgData(@Param("currentDate") String currentDate);

    /**
     * 获取退货数据
     */
	@DS("fa_eu_daily")
	List<StockListDTO> getThData(@Param("currentDate") String currentDate);

    /**
     * 获取转运数据
     */
	@DS("fa_eu_daily")
	List<StockListDTO> getZyData(@Param("currentDate") String currentDate);

    // ProfitCheck相关方法

    /**
     * 获取采购入库数据
     */
    @DS("fa_eu_daily")
	List<ProfitCheckDTO> getCgInData(@Param("start") String start, @Param("end") String end, @Param("company") String company);

    /**
     * 获取报损入库数据
     */
	@DS("fa_eu_daily")
	List<ProfitCheckDTO> getBsInData(@Param("start") String start, @Param("end") String end, @Param("company") String company);

    /**
     * 获取B2B入库数据
     */
	@DS("fa_eu_daily")
	List<ProfitCheckDTO> getB2bInData(@Param("start") String start, @Param("end") String end, @Param("company") String company);

    /**
     * 获取转运入库数据
     */
	@DS("fa_eu_daily")
	List<ProfitCheckDTO> getzyInData(@Param("start") String start, @Param("end") String end, @Param("company") String company);

    /**
     * 获取报损出库数据
     */
	@DS("fa_eu_daily")
	List<ProfitCheckDTO> getBsOutData(@Param("start") String start, @Param("end") String end, @Param("company") String company);

    /**
     * 获取B2B出库数据
     */
	@DS("fa_eu_daily")
	List<ProfitCheckDTO> getB2bOutData(@Param("start") String start, @Param("end") String end, @Param("company") String company);

    /**
     * 获取转运出库数据
     */
	@DS("fa_eu_daily")
    List<ProfitCheckDTO> getZyOutData(@Param("start") String start, @Param("end") String end, @Param("company") String company);

    /**
     * 获取B2C出库数据
     */
	@DS("fa_eu_daily")
	List<ProfitCheckDTO> getB2cOutData(@Param("start") String start, @Param("end") String end, @Param("company") String company);

	@DS("fa_eu_daily")
    List<InvoiceDataDTO> getCgDataByBelong(@Param("start") String start, @Param("end") String end, @Param("belong") String belong);

	@DS("fa_eu_daily")
    List<InvoiceDataDTO> getZyDataByBelong(@Param("start") String start, @Param("end") String end, @Param("belong") String belong);

	@DS("fa_eu_daily")
    List<InvoiceDataDTO> getB2bDataByBelong(@Param("start") String start, @Param("end") String end, @Param("belong") String belong);

	@DS("fa_eu_daily")
    List<String> getSkuByBelong(@Param("belong") String belong, @Param("currentDate") String currentDate);

	@DS("fa_eu_daily")
    List<StockListDTO> getDataByBelong(@Param("end")String end, @Param("belong")String belong);

}